# ifndef DEF_WORLD
# define DEF_WORLD

# include "Source.h"

class World
{
	public:

	World();
	~World();

	void setCurrentWorld( const std::string&);
	
	Hero* getHero();
	Map* getMap();

	Enemy* findEnemyName( const std::string&);
	Enemy* findEnemy( const Ogre::String&);
	PNJ* findPNJName( const std::string&);
	PNJ* findPNJ( const Ogre::String&);

	void init( Game*, Renderer*, AI*, GUI*);
	void createNewHero();
	void loadWorld( const Ogre::String&);
	void unloadWorld();
	void unloadHero();

	void oneFrame( Ogre::Real);

	private:

	Game* myGame;
	Renderer* myRenderer;
	AI* myAI;
	GUI* myGUI;

	std::string myCurrentWorld;

	Map* myMap;
	Hero* myHero;
	std::vector<Enemy*> myEnemies;
	std::vector<PNJ*> myNPCs;
};

# endif